Most websites with sizeable traffic require thousands of application servers to respond to data requests from users. Such a website may include application servers that may be organized according to server-farms or pools that may be respectively located at different physical locations and respond to data requests for different types of user interfaces. For example, one pool of application servers may responds to data requests for user interfaces that contain search results and another pool of application servers may respond to data requests for user interfaces that contain user profile information.
Websites that desire to track information (e.g., navigation information) associated with a user that is navigating the website may maintain a log-file at each application server. Unfortunately, tracking all the navigation information of a specific user requires accessing the log-files residing on the thousands of machines in different physical locations and merging the information according to Internet protocol address to maintain the identify of the user and according to time to maintain the chronology of the user activity. This operation is expensive and typically performed off-line thereby introducing a lag between the time the data is recorded in the log-file and the time the data may be available for analysis.